// 导入 EventSourcePolyfill 用于实现 SSE (Server-Sent Events) 的跨浏览器支持
// EventSourcePolyfill 提供了与标准 EventSource 相同的功能，但支持自定义请求头和更多配置选项
import { EventSourcePolyfill } from 'event-source-polyfill'
import { baseConfig } from './request'

// 从环境变量中获取 API 基础URL
const apiUrl = baseConfig.baseURL

/**
 * 创建并返回一个 SSE 连接实例
 * SSE (Server-Sent Events) 用于实现服务器向客户端的单向实时推送
 * @returns {EventSourcePolyfill} 返回配置好的 EventSource 实例
 */
export function linkSseEvent() {
  return new EventSourcePolyfill(`${apiUrl}/sse/connect`, {
    // 禁用超时后的自动重试
    retryOnTimeout: false,
    // 设置自动重连时间为 -1，禁用自动重连功能
    autoReconnectTimeMs: -1,
    // 设置请求头，添加Bearer令牌用于身份验证
    headers: {
      Token: uni.getStorageSync('token')
    }
  })
}
